Geometry Nodes Asset
https://gyazo.com/d6e411f5ecfc0b5b6d49b211977453a0/raw
CHANGE LOGは一番下
Geometry Nodesでそこそこ使うかもしれないものをまとめたもの
3.1からNodeGroupもAsset Browserで使えるようになったので全てMark as Assetしておきました
Asset登録してあるフォルダに置いとけばアペンドするより楽だと思います
注:全て、Modifierのようにではなくノード内で使うことを想定しています
また、練習みたいな感じで作ってるのと自分が必要になったときにしか作らないとかそんな感じなので、まともに使うならこれらのほうが良いかもしれません
便利系
MixFloat
Floatをミックスする
MixVector
Vectorをミックスする
RGBMixはFactorを1以上入れたりしてもColor2の値でクランプしてしまうから組んだ
MixVectorEach
Vectorをミックスする
Factorの部分をXYZ自由にできるようにしてある
PositionZero
一番端っこの頂点をローカル座標0に移動させる
XYZ:どれを0に移動させるかのブーリアン
Negative:反対側を0に移動させる
ToPolarCoords
極座標変換
めちゃくちゃ間違ってる
ToRectangularCoords
直交座標変換
めちゃくちゃ間違ってる
SinCosTan
入力した値から周期が1 blender unitのサインコサインタンジェントいずれかを出力する
Phase:位相
freq:周波数
amp:振幅
0,1,2→sin,cos,tan
Mapping
ShaderのMappingと同じ
Object Infoと合わせて使うと便利
ZDepth
オブジェクト(カメラ)のZ深度を出力する
裏側はマイナス
FakeCyclic
PreviewCurve
値のマッピングを見る
https://gyazo.com/aec0f2dba675016b8c639bc55f27576a
こんな感じに挟んで使う 本当は1ノードでやりたい position→separate xyzがめんどくさいから
ジェネレート系
Array
配列を作るための頂点を配置するノード
一つ目はThis is initialにチェックを入れた状態にし、2つ目以降はチェックを外して1つ前のGeometryの出力を自身のGeometryに入力する
Relative OffsetはRelative Geoの大きさに合わせて頂点を配置する
Mirror
ミラーする
XYZ:ローカル座標を基準にどの軸でミラーするか
Origin:ミラーの基準位置
Rotation:Originの座標を軸に回転
Is Mirrored:ミラーされたオブジェクトかどうかのブーリアン
Z-upSpiral
Spiral CurveのTiltをなくした
InstanceAlongCurve
Count:インスタンスの数
Offset:インスタンスの位置オフセット
Normalize Offset:オフセットを0~1ベースでいじれるようにする
Cyclic:最後まで行くと最初に戻ってくるようにする
Last on EndPoint:一番最後のインスタンスをカーブの一番最後に配置されるようにする cyclicと同時に使うと始端に戻ってしまうので注意
Separate Instance on Points
Instance IndexとPick Instanceだけない あとはInstance on Pointsと変わらない
Curve to Mesh UV
今のところFill Cap未対応
これまだ想定通りにどうさしないときがある
PlaneToGrid
XY平面(すべてZ=0)上に配置されたメッシュをグリッド化する デフォームするときに便利
真ん中に穴が空いてるタイプのメッシュは現状対応していません
Resolution:XとYそれぞれの軸内での最大値と最小値の差が大きい方の軸を基準としたGridの分割数
https://gyazo.com/edca9b3c96086fe9f5708984f554bc7b
デフォーム系
CurveDeform
Curveに沿ってデフォームする
Axis:カーブに沿う軸を決定する 0,1,2→x,y,z
Offset:位置ズラす
Normalize Offset:Trueの場合、始端を0、終端を1として操作できるようにする
Cyclic:Trueの場合、ぐるぐる回るようにする
RotatableBend
Bendする 曲げる軸を回転できる
Origin:曲げる中心の距離
Rotation:軸回転
Base on unit:Trueの場合、1 blender unitごとで曲がり度合いを決定する
Bend
Bendする BlenderのSimple DeformのBendと同じ結果になる
Origin:曲げる中心の座標
Axis:曲げる軸 0,1,2→x,y,z
Base on unit:Trueの場合、1 blender unitごとで曲がり度合いを決定する
Twist
Twistする
Origin:ねじる中心の座標
Axis:曲げる軸 0,1,2→x,y,z
Base on unit:Trueの場合、1 blender unitごとでねじれ度合いを決定する
Smooth
Smoothする
Selection:どれをSmoothするか
Factor:Smoothする前との位置Mix具合 0であれば元のメッシュと同じ
Repeat:Smoothする回数 0であれば元のメッシュと同じ
※Factorが1以外の場合Smooth Modifierと微妙に違う結果になる 完全に同じではない
PersDeformWIP
パースデフォームWIP
イージング系
入力のValueはNormalizeされたものをつなぐことを前提としている
In / Out:0, 1, 2, 3 → EaseIn, EaseOut, EaseInOut, EaseOutIn
EasePoly
Polynomial easing
Exp:Exponent(指数) 1のときLinear 2のときQuad 3のときCubic 4のときQuart 5のときQuint
EaseSin
EaseExp
EaseCircle
EaseBack
OvShoot:0~1の範囲からどれだけ出るか
EaseElastic
Period:周期(周波数ではない)
Amp:振幅 ただし1以上の値しか有効でない
EaseBounce
to do
画像があると嬉しいかも
deform perspective
焦点距離ベースでやりたいけどどうやって計算すれば良いのかわからないので調べる必要がある
カーブの頂点密度のリマップ
Curve Deformの入力2のSpline indexと入力1のSpline indexを対応させてデフォームさせる
HoudiniのMatch Size良さそうで簡単そうなので作る
Mirror
Curveの場合はFlip FaceではなくReverse Curveをやるようにする
Originの処理が間違ってる 位置だけ2倍する
Instanceのままでも行けるかも
CurveDeformのTangentとNormalの出力を追加する
現状上にアップロードしてるファイルのArrayが意図しない挙動をする
unreleasedでは直ってるかもしれない
特定の方向でスケールできるようにする
rectangular→Cartesianに改名
MappingのVector RotateのCenterにLocationを入力し忘れてる
CHANGE LOG
220907
追加:MirrorノードにIs Mirrored出力
追加:MatchSizeWIPノード
削除:NumToBoolノード
221007
追加:Smoothノード
unreleased
ArrayからArrayPointに名前変更
ArrayPointのノード構成を改善
ArrayPointにArray index出力を追加
InstanceAlongCurveのSelectionを削除(意図した挙動をするように組んでいなかったから)